<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
<head>
<title>DRV_SPI_TRANSFER_EVENT_HANDLER Type</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="generator" content="Doc-O-Matic" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
    <link rel="STYLESHEET" href="default.css" type="text/css" />

<script type="text/javascript" src="scripts.js"></script>
</head>
<body class="Element700" onload="onBodyLoadEx('frames.html', 'topic', '00512.html');" onmousedown="onBodyMouseDown();">

<!-- Begin Popups -->

<!-- End Popups -->

<!-- Begin Page Header -->
<div class="Element710" id="areafixed">
<div class="Element94">
<a href="00007.html" target="topic">Driver Libraries Help</a> &gt; <a href="00137.html" target="topic">SPI Driver Library Help</a> &gt; <a href="00138.html" target="topic">Library Interface</a> &gt; e) Data Types and Constants &gt; <a href="00512.html" target="topic">DRV_SPI_TRANSFER_EVENT_HANDLER Type</a></div>
<div class="Element92">
<table width="100%" cellspacing="0" cellpadding="0">
<tr><td width="25%">
<div class="Element1">
MPLAB Harmony Core Help</div>
</td><td width="25%">
<div class="Element2">
<a href="contents.html" target="tocidx">Contents</a> | <a href="00007.html" target="topic">Home</a></div>
</td><td width="25%">
<div class="Element90">
<a href="00513.html" target="topic">Previous</a> | <a href="00138.html" target="topic">Up</a> | <a href="00514.html" target="topic">Next</a></div>
</td><td width="25%">
<div class="Element96">
<a href="mailto:docerrors@microchip.com&subject=MPLAB Harmony Documentation Feedback (Topic ID: DRV_SPI_TRANSFER_EVENT_HANDLER Topic Title: DRV_SPI_TRANSFER_EVENT_HANDLER Type)&body=Thank you for your feedback! Please include a description of your feedback, and indicate whether you are reporting an an error in the documentation or an enhancement.">Documentation Feedback</a><br> <a href="http://support.microchip.com" target="_blank">Microchip Support</a></div>
</td></tr></table><div class="Element5">
DRV_SPI_TRANSFER_EVENT_HANDLER Type</div>
</div>
</div>

<!-- End Page Header -->

<!-- Begin Client Area -->
<div class="Element720" id="areascroll">
<div class="Element721">

<!-- Begin Page Content -->
<a name="PageContent"></a><div class="Element58">
<a name="4465736372697074696F6E"></a><div class="Element11">
<div class="Element10">
<p class="Element10">
SPI Driver Transfer Event Handler Function Pointer&nbsp;</p>
<p class="Element10">
This data type defines the required function signature for the SPI driver transfer event handling callback function. A client must register a pointer using the transfer event handling function whose function signature (parameter and return value types) match the types specified by this function pointer in order to receive transfer related event calls back from the driver.&nbsp;</p>
<p class="Element10">
The parameters and return values are described here and a partial example implementation is provided.</p></div>
</div>
<a name="43"></a><div class="Element99">
C</div>
<div class="Element101"><div class="Element100"><pre class="Element100"><strong><span style="color: #000080">typedef</span></strong> <strong><span style="color: #000080">void</span></strong> (* <strong><span style="color: #000000">DRV_SPI_TRANSFER_EVENT_HANDLER</span></strong>)(<a href="00506.html" target="topic">DRV_SPI_TRANSFER_EVENT</a> event, <a href="00513.html" target="topic">DRV_SPI_TRANSFER_HANDLE</a> transferHandle, uintptr_t context);</pre></div></div>
<a name="506172616D6574657273"></a><div class="Element14">
Parameters</div>
<div class="Element11">
<div class="Element10">
<div class="Element312">
<div class="TableDiv">
<table cellspacing="0" class="Table3">
<tr>
<td class="Element300" valign="top" width="35%">
<div class="Element301">
Parameters&nbsp;</div></td><td class="Element304" valign="top" width="65%">
<div class="Element305">
Description&nbsp;</div></td></tr><tr>
<td class="Element302" valign="top" width="35%">
<div class="Element303">
event&nbsp;</div></td><td class="Element306" valign="top" width="65%">
<div class="Element307">
Identifies the type of event<br>&nbsp;</div></td></tr><tr>
<td class="Element302" valign="top" width="35%">
<div class="Element303">
transferHandle&nbsp;</div></td><td class="Element306" valign="top" width="65%">
<div class="Element307">
Handle identifying the transfer to which the event relates<br>&nbsp;</div></td></tr><tr>
<td class="Element302" valign="top" width="35%">
<div class="Element303">
context&nbsp;</div></td><td class="Element306" valign="top" width="65%">
<div class="Element307">
Value identifying the context of the application that registered the event handling function.&nbsp;</div></td></tr></table></div></div>
</div>
</div>
<a name="52657475726E73"></a><div class="Element14">
Returns</div>
<div class="Element11">
<div class="Element10">
<p class="Element10">
None.</p></div>
</div>
<a name="52656D61726B73"></a><div class="Element14">
Remarks</div>
<div class="Element11">
<div class="Element10">

<ul class="Element630">
<li class="Element600">If the event is DRV_SPI_TRANSFER_EVENT_COMPLETE, it means that the data was transferred successfully.</li>
</ul><p class="Element10">
&nbsp;</p>

<ul class="Element630">
<li class="Element600">If the event is DRV_SPI_TRANSFER_EVENT_ERROR, it means that the data was not transferred successfully.</li>
</ul><p class="Element10">
&nbsp;</p>

<ul class="Element630">
<li class="Element600">The transferHandle parameter contains the transfer handle of the transfer request that is associated with the event.</li>
</ul><p class="Element10">
&nbsp;</p>

<ul class="Element630">
<li class="Element600">The context parameter contains the a handle to the client context, provided at the time the event handling function was registered using the <a href="00522.html" target="topic">DRV_SPI_TransferEventHandlerSet</a> function. This context handle value is passed back to the client as the &quot;context&quot; parameter. It can be any value necessary to identify the client context or instance (such as a pointer to the client's data) of the client that made the transfer add request.</li>
</ul><p class="Element10">
&nbsp;</p>

<ul class="Element630">
<li class="Element600">The event handler function executes in interrupt context of the peripheral. Hence it is recommended of the application to not perform process intensive or blocking operations with in this function.</li>
</ul><p class="Element10">
&nbsp;</p>

<ul class="Element630">
<li class="Element600">The <a href="00504.html" target="topic">DRV_SPI_ReadTransferAdd</a>, <a href="00528.html" target="topic">DRV_SPI_WriteTransferAdd</a> and <a href="00526.html" target="topic">DRV_SPI_WriteReadTransferAdd</a> functions can be called in the event handler to add a transfer request to the driver queue. These functions can only be called to add transfers to the driver instance whose event handler is running. For example, SPI2 driver transfer requests cannot be added in SPI1 driver event handler. Similarly, SPIx transfer requests should not be added in event handler of any other peripheral.</li>
</ul></div>
</div>
<a name="4578616D706C65"></a><div class="Element14">
Example</div>
<div class="Element11">
<div class="Element10">
<div class="Element13"><div class="Element12"><pre class="Element12"><strong><span style="color: #000080">void</span></strong> APP_MyTransferEventHandler( <a href="00506.html" target="topic">DRV_SPI_TRANSFER_EVENT</a> event,
                               <a href="00513.html" target="topic">DRV_SPI_TRANSFER_HANDLE</a> transferHandle,
                               uintptr_t context )
{
    MY_APP_DATA_STRUCT pAppData = (MY_APP_DATA_STRUCT) context;

    <strong><span style="color: #000080">switch</span></strong>(event)
    {
        <strong><span style="color: #000080">case</span></strong> DRV_SPI_TRANSFER_EVENT_COMPLETE:

            <i><span style="color: #008000">// Handle the completed transfer.</span></i>
            <strong><span style="color: #000080">break</span></strong>;

        <strong><span style="color: #000080">case</span></strong> DRV_SPI_TRANSFER_EVENT_ERROR:

            <i><span style="color: #008000">// Handle error.</span></i>
            <strong><span style="color: #000080">break</span></strong>;
    }
}</pre></div></div>
</div>
</div>
</div>
<!-- End Page Content -->

<!-- Begin Page Footer -->
<div class="Element95">
<a href="00007.html" target="topic">Driver Libraries Help</a> &gt; <a href="00137.html" target="topic">SPI Driver Library Help</a> &gt; <a href="00138.html" target="topic">Library Interface</a> &gt; e) Data Types and Constants &gt; <a href="00512.html" target="topic">DRV_SPI_TRANSFER_EVENT_HANDLER Type</a></div>
<div class="Element93">
<table width="100%" cellspacing="0" cellpadding="0">
<tr><td width="25%">
<div class="Element3">
MPLAB Harmony Core Help</div>
</td><td width="25%">
<div class="Element4">
<a href="contents.html" target="tocidx">Contents</a> | <a href="00007.html" target="topic">Home</a></div>
</td><td width="25%">
<div class="Element91">
<a href="00513.html" target="topic">Previous</a> | <a href="00138.html" target="topic">Up</a> | <a href="00514.html" target="topic">Next</a></div>
</td><td width="25%">
<div class="Element97">
<a href="mailto:docerrors@microchip.com&subject=MPLAB Harmony Documentation Feedback (Topic ID: DRV_SPI_TRANSFER_EVENT_HANDLER Topic Title: DRV_SPI_TRANSFER_EVENT_HANDLER Type)&body=Thank you for your feedback! Please include a description of your feedback, and indicate whether you are reporting an an error in the documentation or an enhancement.">Documentation Feedback</a><br> <a href="http://support.microchip.com" target="_blank">Microchip Support</a></div>
</td></tr></table></div>

<!-- End Page Footer -->
</div>
</div>

<!-- End Client Area -->
</body></html>